#ifndef __SCREEN_COMMON_COMP_H__
#define __SCREEN_COMMON_COMP_H__
#include "lvgl/lvgl.h"
#include "ui_lvgl_helper.h"
#include <stdio.h>
#include <stdlib.h>

// 组件对象类型
typedef enum {
    COMP_OBJ_TEXT,
    COMP_OBJ_IMAGE,
    COMP_OBJ_PANEL
}COMP_OBJ_TYPE;

// 组件对象属性结构体
typedef struct {
    COMP_OBJ_TYPE type;
    lv_img_dsc_t * img_dsc;
    char * text;
    lv_font_t * font;
    lv_obj_t * obj;
}comp_obj_prop_t;    
// 底部宽360px height20px的面板组件
lv_obj_t * BottomWidthTwentyPannelComp(lv_obj_t * parent,uint8_t size,comp_obj_prop_t * propList);
lv_obj_t * TopWidthTwentyFourPannelComp(lv_obj_t * parent,uint8_t size,comp_obj_prop_t * propList);
void ui_my_LABEL_LONG_DOT(const lv_obj_t * obj);
lv_coord_t ui_common_letter_width(lv_obj_t *label,char letter,int letter_num);
lv_coord_t ui_common_get_label_text_width(lv_obj_t *label,char *text);

lv_obj_t * ui_create_list_panel_base(lv_obj_t *parent,lv_coord_t width,lv_coord_t height,bool is_col,int size,comp_obj_prop_t propList[]);

lv_obj_t * ui_create_column_list_panel(lv_obj_t *parent,lv_coord_t width,lv_coord_t height,int size,comp_obj_prop_t propList[]);

lv_obj_t *ui_create_default_column_list_panel(lv_obj_t *parent,int size,comp_obj_prop_t propList[]);

lv_obj_t * ui_create_row_list_panel(lv_obj_t *parent,lv_coord_t width,lv_coord_t height,int size,comp_obj_prop_t propList[]);

lv_obj_t *ui_create_default_row_list_panel(lv_obj_t *parent,int size,comp_obj_prop_t propList[]);
#endif /* __SCREEN_COMMON_COMP_H__ */
